Поиметь,
или... поиметь два раза?
Приветствую Вас. Меня зовут Brother Hack и я бы хотел рассказать очередную историю из жизни хакеров. Немного цинично, но так. Для внимательных читателей: это история будет посвящена взлому американского ISP, который, ко всему, был еще и billing-сервером из кластера системы CyberCash (www.cybercash.com).
IRC это рулеззь :-) Порой, можно и не такие вещи услышать. Но так как не все могли это слышать, я решил это немного озвучить в этом журнале. Если Вы не против, я буду вести повествование от первого лица - мне так удобней. По мере возможности я буду комментировать повествование техническими деталями.
Теперь - что мы получили (а точнее - то куда мы смогли попасть) [1]:
SunOS 2.5
polus.hacked.net
china.hacked.net
3Com
Corporation HiPer Access Router Card
acp0.hacked.net
USR Total
Control (tm) NETServer Card
acp1.hacked.net
acp2.hacked.net
Livingston PortMaster
p3-0.hacked.net
p3-1.hacked.net
p30-0.hacked.net
p30-1.hacked.net
p30-2.hacked.net
p30-3.hacked.net
ISP-Accelerator(TM) Remote Access Server
vn0.hacked.net
vn1.hacked.net
vn2.hacked.net
vn3.hacked.net
Чуть позже, я подробно опишу способ проникновения в каждый из них (будь-то сервер, dial-up access point, просто switch или роутер).
Хм. По всему, следует сначала рассказать, как я оказался внутри. К сожалению, ничего "супер-хакерского" тут не понадобилось. Я нашел log от MySQL, который "предусмотрительно" лежал на public-ftp. Кгм, подумал я, увидев: UPDATE user SET Password=PASSWORD('Gfh.Jkm') WHERE user='root' Сразу пошел смотреть, - а что там у нас? Конечно, соединиться с mysql сервером у меня не получилось. Меня честно и откровенно послали :-) Ладно, думаю я и пытаюсь вломиться telnet'ом. Got it! Come here! После ввода логина root и пароля меня просто отбрасывает. Кгм, подумал я опять, и сделал: rlogin -l root polus.hacked.net, на что получил в ответ: Not on system console.
Странно, подумал я и сделал rsh -l root polus.hacked.net /bin/sh -i. Сервер
честно сказал:
stty: : Invalid argument
\h:\w#
Вот, собственно и вся проблема :-) Предусмотрительно кто-то, кто попал сюда _до меня_ (я знаю кто это - але, "клиент Relcom" - отзовись!) сделал маааленькую дырочку в стиле echo + + /root/.rhosts. Помогло. Так я попал на polus.hacked.net. Ничего сверхъествественного.
Let me in.
Вот я и внутри. Что теперь?
cat /etc/shadow > /tmp/abq; chmod
ugo+rwx /tmp/abq; man ftp 8-)
Ну это не в счет.
Внимательно изучив /root/.rhosts, я попробовал все хосты, которые root (тамошний) оставил для себя. Из всех - сервером оказался только china.hacked.net. Удивительно, но мой "неизвестный" помощник из Relcom'а сюда не добрался, а если и добрался то не оставил подобной дырки. Ну что же все надо делать самому :-) Один взмах руки - у меня 10 паролей пользователей c shell. Второй взмах - стоит sniffer и пишет логи на public-ftp. Гениально? Вовсе нет. Но я отвлекся. После таких победных вращений руками я получил все что хотел, не считая трех дополнительных account'ов с shell'ами и пяти /bin/sh и /bin/bash с suid bit (chmod u+s fake-sh; chown root fake-sh) спрятанных на протяжении всего /home :-)
Так-с, о чем это я? Надо закончить с этим сервером. Что у нас есть? (ps -ef) Come get some! Radius! Как я мог забыть?!! Это же ISP! Значит должна быть какая-то авторизационная система.
Иди ко мне, babe :-)
Теперь у нас есть список access серверов (приведенных выше) и паролей к ним (!!!) Lammaz must die в диких муках, я так всегда говорил. Склеротики! Держать пароли в plain text!! MUST DIE!! Аншлаг.
Дело техники.
В файле access-серверов у меня есть acp0.hacked.net, acp1.hacked.net, p3-0.hacked.net. Методом получения DNS и "тыка" я получаю вход на остальные access-сервера (пароли одинаковые). Но... У меня всегда была любовь к неизвестным маршрутизаторам.
Ну почему vn0.hacked.net выглядел так заманчиво?
Ни один пароль не подошел. Хм, время перебора. It's show time! Совершенно
на автомате набираю:
Please Enter User Name:admin
Please Enter
Password:admin
ISP-Accelerator(TM) Remote Access Server
Copyright 1996
- 1998, All Rights Reserved
** WARNING: Session will be disconnected if
inactive for 10 minutes!
>>
Так и хочется сказать: "Твою мать! А ведь работает!" :-)
"Кошку" взломать не смог. А жаль. Очень хотелось [2].
Тормоз!! Как я нашел сервер? По логу MySQL! Зачем нужен MySQL база серверу
Internet Service Provider? Billing! Хотя сразу воткну disclamer (отмазку) -
лог был датирован 1997 годом, кто мог подумать... (а ведь надо было!)
/usr/local/mysql/bin/mysql --user=root -p hacked-database
select *
from users;
select * from billing;
Отлично. Две базы. Одна - это plain-text пароли и логины всех пользователей (ну не сказка ли? :-). Вторая - база для billing'а. _Полнейшая_ информация о пользователях (есть даже accounting bank) и об их credit cards (в общей сложности больше 7000 записей).
Я крут. Я гений. Аплодисменты.
Спать иногда тоже надо.
Утром не могу войти. Получаю /bin/true вместо lovely /bin/bash. Меня нашли.
Я тоже ступил - не забил логи моего присутсвия. Идиот. Coming up. Я благодарю
себя за своевременный download dump'а MySQL базы. Захожу обычным пользователем
и пытаюсь сделать su - root:
Password:
su: Sorry
А как там дела с моим сниффером? Мертвенькое :-( Логов нет. Чем нам может помочь find? Тем, что он нашел логи сниффера в /root/sam/ [4] Идиот :-) Что же в логах... Ага, вот root сделал finger, кгм, увидел sam, сделал finger sam, а после last sam. Удивлен. Весьма. В связи с чем делает cat /var/adm/messages | more. Удивлен еще больше. passwd root. Гениально. Вот у меня есть и новый пароль :-)
Быстренько наводим порядок. Больше нет ни меня, ни никого другого. И не было. Представляю как удивится root. Запускаю sniffer уже как identd-процесс. Ага, вот еще... Ночью, рассматриваю домена из DNS зоны этого ISP нашел некий billing.hacked.net, который WinNT-based. Тут же достаю nat10 и начинаю атаковать. Так как база большая ухожу заниматься другими делами.
Come on.
Да, root мне отомстил. Все что _может быть_ заблокировано - заблокировано. Насколько я понял, root недостаточно квалифицирован, чтобы определить способ взлома, поэтому он закрыл все, даже ftp-сервер, хотя polus есть основной anonymous-ftp сервер этого ISP. Да... Идиот. Нет слов.
Переждем.
Пока у меня нет входа на основной сервер пытаюсь влезть china.hacked.net использую пароли пользователей из полученного dump'а MySQL. I'm in с первым же паролем. Пароль у root'а такой же.
Поразительно.
Ничего интересного не нашел. Однако нет... подожди. ps -ef указывает на некоторые процессы (программы) с название credit_bill. Yum-yum :-) Тут-то я и нашел базу системы CreditCash. Вернее не базу, а только логи. Но мне этого хватило (больше 200 записей).
Скажи "bye-bye" папочке :-)
Я никогда не говорил, что я надоедливый? :-)
Я возвращаюсь на polus, и пытаюсь поговорить с root'ом. Все что мне было интересно я уже видел, теперь я хотел мира.
Черт! Твою мать! Стой!
В связи с моим побуждением я потерял 5 account'ов в его системе - он их заблокировал, пока я пытался сделать ему talk. Не говоря уже о том, что он написал complain тому американскому ISP, через сервера которого я "лазил" к нему. Я потерял одну из лучших своих промежуточных "точек" для атак. Он даже умудрился просканировать порты моего work-station когда я пытался к нему, в отчаянии, лезть напрямую. Как хорошо, что практически все что можно было закрыто. Корпоративная сеть.
Я такого не прощаю.
Больше root меня никогда не видел. Я себя обезопасил на всю жизнь. Столько дырок сколько есть в его система нет нигде, даже в _полностью_ открытой системе. Я ведь хотел мира, не так ли?
Кстати, до сих пор по finger root Вы можете прочитать немало "лестных" отзывов о нем :-)
В связи с определенными обстоятельствами убиваю всю базу паролей, кредиток и остального staff этого ISP везде. Припадок честности, скажите Вы? Совесть заиграла? Вовсе нет. Не хотел марать руки "убитой" системой. Хотел убедить себя что я туда больше не вернусь. А это можно сделать только тогда, когда ты _не можешь_ сделать обратное.
Странно как-то.
I'm back. Не утерпел.
Сервер встретил меня permission denied. Залатал таки одну из дырок. Что же, пойдем посмотрим-ка на логи sniffer'а. Кстати, они до сих пор лежали на public-ftp :-) Используя один из паролей пользователей я попадаю внутрь, опять получаю root'а. Царит полная разруха. Root приложил немало усилий, чтобы понять как же его взломали. Он все понял просмотрев .bash_profile и им же сохраненного каталога /home/sam/, итого r* сервисы закрыты. Ну это не проблема для меня. Все вернулось на круги своя и я покидаю пепелище - тихо и мирно. Между прочим, он даже MySQL завалил специально от меня. Я запустил его, взял обоновление базы, и опять положил.
Пусть будет.
----
[1] Естественно, все адреса изменены.
[2] Этот ISP имел на Cisco два E1-bandwidthed канала.
[3] Тут
к работе присоединился мой друг, неплохой программист, который и разобрался с
этой базой.
[4] Логин, с правами root'а, который я сделал для себя,
был sam.